import requests
req = requests.get("https://www.douban.com/")
print(req.status_code)
print(req.headers)
req2 = requests.get("https://www.douban.com/", params={"q": "Python", "cat": "1001"})
print(req2.url)
print(req2.encoding)
print(req2.content)
req3 = requests.get("https://mempf.yahoo.co.jp/offer?position=mhd_premium_pc,mhd_uhd_pc,mhd_text_pc&webview=0&service=weather&callback=YAHOO.JP.matildaPCMHD.callback&t=1548065189624")
print(req3.json())  # requests的方便之处还在于，对于特定类型的响应，例如JSON，可以直接获取
# 需要传入HTTP Header时，我们传入一个dict作为headers参数
req4 = requests.get("https://www.douban.com/", headers={"User-Agent": "Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit"})
# 要发送POST请求，只需要把get()方法变成post()，然后传入data参数作为POST请求的数据
req5 = requests.post("https://accounts.douban.com/login", data={"form_email": "abc@example.com", "form_password": "123456"})
# requests默认使用application/x-www-form-urlencoded对POST数据编码。如果要传递JSON数据，可以直接传入json参数
params = {'key': 'value'}
r = requests.post("url", json=params)  # 内部自动序列化为JSON
# 上传文件需要更复杂的编码格式，但是requests把它简化成files参数
upload_files = {'file': open('report.xls', 'rb')}
# 在读取文件时，注意务必使用'rb'即二进制模式读取，这样获取的bytes长度才是文件的长度。
r = requests.post("url", files=upload_files)
# 除了能轻松获取响应内容外，requests对获取HTTP响应的其他信息也非常简单。
r.headers
r.headers['Content-Type']
# requests对Cookie做了特殊处理，使得我们不必解析Cookie就可以轻松获取指定的Cookie：
r.cookies['ts']
# 要在请求中传入Cookie，只需准备一个dict传入cookies参数：
cs = {'token': '12345', 'status': 'working'}
r = requests.get("url", cookies=cs)
# 最后，要指定超时，传入以秒为单位的timeout参数：
r = requests.get("url", timeout=2.5)  # 2.5秒后超时

